let ajaxUtil = require("../../ajaxUtil/request")
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 定义 shanp列表数据
    goods: [],
    activeTab: "overall",
    tabs: [{
        text: "综合",
        target: "overall"
      },
      {
        text: "销量",
        target: "sale"
      },
      {
        text: "价格",
        target: "price"
      }
    ]
  },
  // 定义参数
  total: 0, //总条数
  pagenum: 1, //页码
  pagesize: 20, //页面条数
  cid: "", //分类id
  query: "", //关键字
  handleTabClick: function (e) {
    // console.log(e.detail);
    // 父传子 把 子组件带过来的参数 激活显示
    this.setData({
      activeTab: e.detail
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    // b.1 定义请求参数
    let params = {}
    //  b.2 查询参数query -- 从首页进来的 -- 带着query关键字
    if (options.query) {
      // 如果查询参数有query，那么把查询到的query传给请求参数params
      params.query = options.query
      // 如果有这个query就把相关的内容渲染在页面上
      this.query = options.query
    }
    // c.1 添加请求参数 cid 如果这个是从分类页面跳转过来的话
    if (options.cid) {
      params.cid = options.cid
      this.cid = options.cid
    }
    params.pagesize = this.pagesize
    params.pagenum = this.pagenum
    // 发送异步请求获取数据
    let result = await ajaxUtil.request({
      //  b.3 将请求参数添加到 data 请求参数数据中
      data: {
        ...params
      },
      url: "goods/search"
    })
    console.log(result.message);
    // 为total,pagenum,pagesize,goods 赋值
    this.total = result.message.total,
      this.pagenum = result.message.pagenum,
      this.pagesize = 20
    this.setData({
      goods: result.message.goods
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  getProductList: async function () {
    // 构造请求参数
    let params = {}
    if (this.query) {
      params.query = this.query
    }
    if (this.cid) {
      params.cid = this.cid
    }
    params.pagesize = this.pagesize
    params.pagenum = 1
    let result = await ajaxUtil.request({
      url: "goods/search",
      data: {
        ...params
      }
    })
    wx.stopPullDownRefresh()
    this.total = result.message.total,
      this.pagenum = result.message.pagenum,
      this.setData({
        goods: result.message.goods
      })
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    console.log('用户下拉了');
    // this.setData({
    //   goods: []
    // })
    this.getProductList()

    // 刷新页面
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: async function () {
    console.log('触底了');
    // 如果有数据就一直上啦加载，没有就提示已经是最后一页了
    if (parseInt(this.pagenum) + 1 <= Math.ceil(this.total / this.pagesize)) {
      // 云粗发送请求那下一页的数据
      this.pagenum = parseInt(this.pagenum) + 1
      let params = {}
      if (this.cid) {
        params.cid = this.cid
      }
      if (this.query) {
        params.query = this.query
      }
      params.pagesize = this.pagesize
      params.pagenum = this.pagenum // 上面已经加一了
      // 发下一页的请求
      let result = await ajaxUtil.request({
        url: "goods/search",
        data: {
          ...params
        }
      })
      // 把新加载的数据追加到goods中
      this.setData({
        goods: [
          ...this.data.goods,
          ...result.message.goods
        ]
      })
    } else {
      wx.showToast({
        title: '已经到最后一页了',
      })
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})